Java 反射设置List属性 | 您所在的位置:网站首页 › list 属性 › Java 反射设置List属性 |
使用 Java 反射可以动态地设置对象的属性值,包括 List 类型的属性。以下是一个示例代码,演示如何通过反射设置 List 类型的属性: 假设有一个类 Person,包含一个 List 类型的属性 names: java public class Person { private List names; public List getNames() { return names; } public void setNames(List names) { this.names = names; } }现在,我们使用反射来动态地设置 Person 对象的 names 属性: import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws Exception { Person person = new Person(); Class clazz = person.getClass(); // 获取 names 属性对应的 Field 对象 Field field = clazz.getDeclaredField("names"); // 设置属性可访问性为 true,以避免访问权限问题 field.setAccessible(true); List names = new ArrayList(); names.add("Alice"); names.add("Bob"); // 设置 names 属性的值为新的 List 对象,注意要使用 field.set() 方法来设置属性值,而不是直接使用 names = person.names = names; 的形式赋值 field.set(person, names); // 输出 [Alice, Bob] System.out.println(person.getNames()); } }在上面的代码中,我们首先创建了一个 Person 对象,然后获取了该对象的 Class 对象。接着,我们通过调用 Class 对象的 getDeclaredField() 方法获取了 names 属性对应的 Field 对象,并将属性的可访问性设置为 true,以确保我们可以访问该属性。接下来,我们创建了一个新的 List 对象,并将两个字符串添加到列表中。最后,我们通过调用 Field 对象的 set() 方法将新的 List 对象设置为 names 属性的值。在输出结果中可以看到,我们已经成功地设置了 names 属性的值,并且成功地访问了该属性的值。 测试打印结果 |
CopyRight 2018-2019 实验室设备网 版权所有 |